<?php

// 假设有这样一个控制器
class UserController {
    public function getUser(\My\core\http\Request $id, string $sex='男') {
        echo "User {$id},sex is {$sex}";
    }
}

// 在框架中的处理流程：
// 1. 框架创建 UserController 的实例
$instance = new UserController();

// 2. 获取方法的反射对象
$method = new ReflectionMethod('UserController', 'getUser');
//$method->invoke($instance, 123); // 相当于 $instance->getUser(123) 输出User123

$refMethods = $method->getParameters();
foreach ($refMethods as $method){
    var_dump($method->getType()->getName());
    $method->getType()->getName()
}





// 3. 注册路由时传递实例对象
//$routerCollector->addRouter('GET', '/user/{id}', function () use ($method, $instance) {
//    // 4. 当路由匹配时，在具体的实例上调用方法
//    return $method->invoke($instance, 123); // 相当于 $instance->getUser(123)
//});
